<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta content="Cask Data, Inc." name="author" />
<meta content="HTTP RESTful Interface to the Cask Data Application Platform" name="description" />
<meta content="Copyright © 2015-2017 Cask Data, Inc." name="copyright" />


    <meta name="git_release" content="6.1.1">
    <meta name="git_hash" content="05fbac36f9f7aadeb44f5728cea35136dbc243e5">
    <meta name="git_timestamp" content="2020-02-09 08:22:47 +0800">
    <title>Workflow HTTP RESTful API</title>

    <link rel="stylesheet" href="../_static/cdap-bootstrap.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <link rel="stylesheet" href="../_static/bootstrap-3.3.6/css/bootstrap.min.css" type="text/css" />
    <link rel="stylesheet" href="../_static/bootstrap-3.3.6/css/bootstrap-theme.min.css" type="text/css" />
    <link rel="stylesheet" href="../_static/css/bootstrap-sphinx.css" type="text/css" />
    <link rel="stylesheet" href="../_static/css/cdap-dynamicscrollspy-4.css" type="text/css" />
    <link rel="stylesheet" href="../_static/css/jquery.mCustomScrollbar.css" type="text/css" />
    <link rel="stylesheet" href="../_static/css/cdap-jquery.mCustomScrollbar.css" type="text/css" />
    <link rel="stylesheet" href="../_static/css/abixTreeList-2.css" type="text/css" />
    <link rel="stylesheet" href="../_static/cdap-bootstrap.css" type="text/css" />

    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '',
        VERSION:     '6.1.1',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  false
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <script type="text/javascript" src="../_static/language_data.js"></script>

    <link rel="shortcut icon" href="../_static/favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="top" title="Cask Data Application Platform 6.1.1 Documentation" href="../index.html" />
    <link rel="up" title="CDAP HTTP RESTful API v3" href="index.html" />
    <link rel="next" title="Java Client API" href="../java-client-api.html" />
    <link rel="prev" title="Transaction Service HTTP RESTful API" href="transactions.html" />
    <!-- block extrahead -->
    <meta charset='utf-8'>
    <meta http-equiv='X-UA-Compatible' content='IE=edge,chrome=1'>
    <meta name='viewport' content='width=device-width, initial-scale=1.0, maximum-scale=1'>
    <meta name="apple-mobile-web-app-capable" content="yes">
    <!-- block extrahead end -->

</head>
<body role="document">

<!-- block navbar -->
<div id="navbar" class="navbar navbar-inverse navbar-default navbar-fixed-top">
    <div class="container-fluid">
      <div class="row">
        <div class="navbar-header">
          <!-- .btn-navbar is used as the toggle for collapsed navbar content -->
          <a class="navbar-brand" href="../table-of-contents/../../index.html">
            <span><img alt="CDAP logo" src="../_static/cdap_logo.svg"/></span>
          </a>

          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".nav-collapse">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>

          <div class="pull-right">
            <div class="dropdown version-dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown"
                role="button" aria-haspopup="true" aria-expanded="false">
                v 6.1.1 <span class="caret"></span>
              </a>
              <ul class="dropdown-menu">
                <li><a href="//docs.cdap.io/cdap/5.1.2/en/index.html">v 5.1.2</a></li>
                <li><a href="//docs.cdap.io/cdap/4.3.4/en/index.html">v 4.3.4</a></li>
              </ul>
            </div>
          </div>
          <form class="navbar-form navbar-right navbar-search" action="../search.html" method="get">
            <div class="form-group">
              <div class="navbar-search-image material-icons"></div>
              <input type="text" name="q" class="form-control" placeholder="  Search" />
            </div>
            <input type="hidden" name="check_keywords" value="yes" />
            <input type="hidden" name="area" value="default" />
          </form>

          <div class="collapse navbar-collapse nav-collapse navbar-right navbar-navigation">
            <ul class="nav navbar-nav"><li class="docsite-nav-tab-container"><a class="docsite-nav-tab-link " href="../table-of-contents/../../index.html">简介</a></li><li class="docsite-nav-tab-container"><a class="docsite-nav-tab-link " href="../table-of-contents/../../guides.html">手册</a></li><li class="docsite-nav-tab-container"><a class="docsite-nav-tab-link current" href="../table-of-contents/../../reference-manual/index.html">参考</a></li><li class="docsite-nav-tab-container"><a class="docsite-nav-tab-link " href="../table-of-contents/../../faqs/index.html">帮助</a></li>
            </ul>
          </div>

        </div>
      </div>
    </div>
  </div><!-- block navbar end -->
<!-- block main content -->
<div class="main-container container">
  <div class="row"><div class="col-md-2">
      <div id="sidebar" class="bs-sidenav scrollable-y-outside" role="complementary">
<!-- theme_manual: reference-manual -->
<!-- theme_manual_highlight: reference -->
<!-- sidebar_title_link: Reference -->

  <div role="note" aria-label="manuals links"><h3>Reference</h3>
    <ul class="reference-page-menu">
      <nav class="pagenav">
      <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../index.html"> Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../characters.html"> Supported Characters</a></li>
<li class="toctree-l1"><a class="reference internal" href="../cli-api.html"> Command Line Interface API</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html"> HTTP RESTful API</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="introduction.html">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="artifact.html">Artifact</a></li>
<li class="toctree-l2"><a class="reference internal" href="configuration.html">Configuration</a></li>
<li class="toctree-l2"><a class="reference internal" href="dataset.html">Dataset</a></li>
<li class="toctree-l2"><a class="reference internal" href="lifecycle.html">Lifecycle</a></li>
<li class="toctree-l2"><a class="reference internal" href="logging.html">Logging</a></li>
<li class="toctree-l2"><a class="reference internal" href="metadata.html">Metadata</a></li>
<li class="toctree-l2"><a class="reference internal" href="metrics.html">Metrics</a></li>
<li class="toctree-l2"><a class="reference internal" href="monitor.html">Monitor</a></li>
<li class="toctree-l2"><a class="reference internal" href="namespace.html">Namespace</a></li>
<li class="toctree-l2"><a class="reference internal" href="dashboard.html">Dashboard</a></li>
<li class="toctree-l2"><a class="reference internal" href="preferences.html">Preferences</a></li>
<li class="toctree-l2"><a class="reference internal" href="profile.html">Profile</a></li>
<li class="toctree-l2"><a class="reference internal" href="query.html">Query</a></li>
<li class="toctree-l2"><a class="reference internal" href="reports.html">Reports</a></li>
<li class="toctree-l2"><a class="reference internal" href="security.html">Security</a></li>
<li class="toctree-l2"><a class="reference internal" href="service.html">Service</a></li>
<li class="toctree-l2"><a class="reference internal" href="transactions.html">Transactions</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">Workflow</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../java-client-api.html"> Java Client API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../javadocs/index.html"> Javadocs</a></li>
<li class="toctree-l1"><a class="reference internal" href="../release-notes.html"> 发行说明</a></li>
<li class="toctree-l1"><a class="reference internal" href="../licenses/index.html"> Trademarks, Licenses, and Dependencies</a></li>
<li class="toctree-l1"><a class="reference internal" href="../glossary.html"> 术语表</a></li>
<li class="toctree-l1"><a class="reference internal" href="../genindex.html"> Index</a></li>
</ul>
</nav>
    </ul>
  </div></div>
    </div><div class="col-md-8 content" id="main-content">
    
  <div class="section" id="workflow-http-restful-api">
<span id="http-restful-api-workflow"></span><h1>Workflow HTTP RESTful API<a class="headerlink" href="#workflow-http-restful-api" title="Permalink to this headline">🔗</a></h1>
<p>Use the CDAP Workflow HTTP RESTful API to access workflow tokens; list and delete local
datasets used in a workflow; retrieve the state of nodes that were executed; and retrieve
statistics across <em>successful</em> runs of a workflow.</p>
<p>Additional details and examples are found in the <a class="reference external" href="../../../developer-manual/building-blocks/workflows.html#workflows" title="(in Cask Data Application Platform v6.1.1)"><span class="xref std std-ref">开发手册: Workflows</span></a>.</p>
<p>All methods or endpoints described in this API have a base URL (typically
<code class="docutils literal notranslate"><span class="pre">http://&lt;host&gt;:11015</span></code> or <code class="docutils literal notranslate"><span class="pre">https://&lt;host&gt;:10443</span></code>) that precedes the resource
identifier, as described in the <a class="reference internal" href="introduction.html#http-restful-api-conventions-base-url"><span class="std std-ref">RESTful API Conventions</span></a>.
These methods return a status code, as listed in the <a class="reference internal" href="introduction.html#http-restful-api-status-codes"><span class="std std-ref">RESTful API  Status Codes</span></a>.</p>
<div class="section" id="workflow-tokens">
<h2>Workflow Tokens<a class="headerlink" href="#workflow-tokens" title="Permalink to this headline">🔗</a></h2>
<p>This interface supports accessing the value of workflow tokens set during runs of a workflow.
Returned values can be specified for a particular scope, node or key.</p>
<div class="section" id="obtaining-a-token-s-values">
<h3>Obtaining a Token’s Values<a class="headerlink" href="#obtaining-a-token-s-values" title="Permalink to this headline">🔗</a></h3>
<p>To retrieve the values that were put into the workflow token for a particular run,
use an HTTP GET request to the query’s URL:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">GET /v3/namespaces/&lt;namespace-id&gt;/apps/{app-id}/workflows/{workflow-id}/runs/{run-id}[/nodes/{node-id}]/token</span>
</pre></div>
</div>
<p>The request can (optionally) contain a <em>node-id</em> to limit the request to a particular node in workflow.</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">namespace-id</span></code></td>
<td>Namespace ID</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">app-id</span></code></td>
<td>Name of the application</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">workflow-id</span></code></td>
<td>Name of the workflow</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">run-id</span></code></td>
<td>UUID of the workflow run</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">node-id</span></code></td>
<td>Name of a node in the workflow (optional)</td>
</tr>
</tbody>
</table>
<p class="rubric">Extending the Request</p>
<p>The request can be extended with query parameters:</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">scope</span></code></td>
<td><em>user</em> (default) returns the token for <code class="docutils literal notranslate"><span class="pre">Scope.USER</span></code>; <em>system</em> returns the token for
<code class="docutils literal notranslate"><span class="pre">Scope.SYSTEM</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">key</span></code></td>
<td>Returns the value for a specified key; if unspecified, returns all keys (optional)</td>
</tr>
</tbody>
</table>
<p class="rubric">Comments</p>
<p>If the query was successful, the body will contain the workflow token for a particular workflow
run, such as:</p>
<div class="highlight-json-ellipsis notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
  <span class="nt">&quot;key1&quot;</span><span class="p">:</span> <span class="p">[</span>
      <span class="p">{</span>
        <span class="nt">&quot;nodeName&quot;</span><span class="p">:</span> <span class="s2">&quot;node1&quot;</span><span class="p">,</span>
        <span class="nt">&quot;value&quot;</span><span class="p">:</span> <span class="s2">&quot;value1&quot;</span>
      <span class="p">},</span> <span class="p">{</span>
        <span class="nt">&quot;nodeName&quot;</span><span class="p">:</span> <span class="s2">&quot;node2&quot;</span><span class="p">,</span>
        <span class="nt">&quot;value&quot;</span><span class="p">:</span> <span class="s2">&quot;value2&quot;</span>
      <span class="p">}</span>
    <span class="p">],</span>
  <span class="nt">&quot;key2&quot;</span><span class="p">:</span> <span class="p">[</span>
      <span class="p">{</span>
          <span class="nt">&quot;nodeName&quot;</span><span class="p">:</span> <span class="s2">&quot;node2&quot;</span><span class="p">,</span>
          <span class="nt">&quot;value&quot;</span><span class="p">:</span> <span class="s2">&quot;v2&quot;</span>
      <span class="p">}</span>
    <span class="p">]</span>
<span class="p">}</span>
</pre></div>
</div>
<p class="rubric">HTTP Responses</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Status Codes</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">200</span> <span class="pre">OK</span></code></td>
<td>The query was successfully received and the workflow token was returned in the body</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">404</span> <span class="pre">Not</span> <span class="pre">Found</span></code></td>
<td>The app, workflow, run-id, scope or key was not found</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">500</span></code></td>
<td>Internal server error</td>
</tr>
</tbody>
</table>
<p class="rubric">Examples</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<tbody valign="top">
<tr class="row-odd"><th class="stub">HTTP Request</th>
<td><code class="docutils literal notranslate"><span class="pre">GET</span> <span class="pre">/v3/namespaces/default/apps/Purchase/workflows/PurchaseHistoryWorkflow/runs/57c...75e2/token</span></code></td>
</tr>
<tr class="row-even"><th class="stub">HTTP Response</th>
<td><code class="docutils literal notranslate"><span class="pre">{&quot;key1&quot;:[{&quot;nodeName&quot;:</span> <span class="pre">&quot;node1&quot;,</span> <span class="pre">&quot;value&quot;:&quot;1&quot;}]}</span></code></td>
</tr>
<tr class="row-odd"><th class="stub">Description</th>
<td><div class="first last line-block">
<div class="line">Retrieves the token for a specific run of <em>PurchaseHistoryWorkflow</em></div>
<div class="line"><br /></div>
</div>
</td>
</tr>
<tr class="row-even"><th class="stub">HTTP Request</th>
<td><code class="docutils literal notranslate"><span class="pre">GET</span> <span class="pre">/v3/namespaces/default/apps/Purchase/workflows/PurchaseHistoryWorkflow/runs/57c...75e2/token?scope=system</span></code></td>
</tr>
<tr class="row-odd"><th class="stub">HTTP Response</th>
<td><code class="docutils literal notranslate"><span class="pre">{&quot;key1&quot;:[{&quot;nodeName&quot;:</span> <span class="pre">&quot;node1&quot;,</span> <span class="pre">&quot;value&quot;:&quot;1&quot;}]}</span></code></td>
</tr>
<tr class="row-even"><th class="stub">Description</th>
<td><div class="first last line-block">
<div class="line">Retrieves the token in the scope <em>System</em> for a specific run of <em>PurchaseHistoryWorkflow</em></div>
<div class="line"><br /></div>
</div>
</td>
</tr>
<tr class="row-odd"><th class="stub">HTTP Request</th>
<td><code class="docutils literal notranslate"><span class="pre">GET</span> <span class="pre">/v3/namespaces/default/apps/Purchase/workflows/MyWorkflow/runs/57c...75e2/token?key=key1</span></code></td>
</tr>
<tr class="row-even"><th class="stub">HTTP Response</th>
<td><code class="docutils literal notranslate"><span class="pre">{&quot;key1&quot;:[{&quot;nodeName&quot;:</span> <span class="pre">&quot;node1&quot;,</span> <span class="pre">&quot;value&quot;:&quot;1&quot;}]}</span></code></td>
</tr>
<tr class="row-odd"><th class="stub">Description</th>
<td><div class="first last line-block">
<div class="line">Retrieves the values for the key “key1” from the token in the scope <em>User</em> for a specific run of <em>MyWorkflow</em></div>
<div class="line"><br /></div>
</div>
</td>
</tr>
<tr class="row-even"><th class="stub">HTTP Request</th>
<td><code class="docutils literal notranslate"><span class="pre">GET</span> <span class="pre">/v3/namespaces/default/apps/Purchase/workflows/MyWorkflow/runs/57c...75e2/nodes/MyExitNode/token?key=key1</span></code></td>
</tr>
<tr class="row-odd"><th class="stub">HTTP Response</th>
<td><code class="docutils literal notranslate"><span class="pre">{&quot;key1&quot;:[{&quot;nodeName&quot;:</span> <span class="pre">&quot;MyExitNode&quot;,</span> <span class="pre">&quot;value&quot;:&quot;1&quot;}]}</span></code></td>
</tr>
<tr class="row-even"><th class="stub">Description</th>
<td>Retrieves the value for the key <em>key1</em> at node <em>MyExitNode</em> from the token in the scope <em>User</em> for a specific run of <em>MyWorkflow</em></td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section" id="workflow-local-datasets">
<h2>Workflow Local Datasets<a class="headerlink" href="#workflow-local-datasets" title="Permalink to this headline">🔗</a></h2>
<p>This interface supports listing and deleting the local datasets associated with a particular workflow run.</p>
<div class="section" id="listing-local-datasets">
<h3>Listing Local Datasets<a class="headerlink" href="#listing-local-datasets" title="Permalink to this headline">🔗</a></h3>
<p>To retrieve the local datasets associated with a particular run, use an HTTP GET request to the query’s URL:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">GET /v3/namespaces/&lt;namespace-id&gt;/apps/&lt;app-id&gt;/workflows/&lt;workflow-id&gt;/runs/&lt;run-id&gt;/localdatasets</span>
</pre></div>
</div>
<p>where</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">namespace-id</span></code></td>
<td>Namespace ID</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">app-id</span></code></td>
<td>Name of the application</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">workflow-id</span></code></td>
<td>Name of the workflow</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">run-id</span></code></td>
<td>UUID of the workflow run</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="deleting-local-datasets">
<h3>Deleting Local Datasets<a class="headerlink" href="#deleting-local-datasets" title="Permalink to this headline">🔗</a></h3>
<p>To delete the local datasets associated with a particular run, use an HTTP DELETE request to the query’s URL:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">DELETE /v3/namespaces/&lt;namespace-id&gt;/apps/&lt;app-id&gt;/workflows/&lt;workflow-id&gt;/runs/&lt;run-id&gt;/localdatasets</span>
</pre></div>
</div>
<p>where</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">namespace-id</span></code></td>
<td>Namespace ID</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">app-id</span></code></td>
<td>Name of the application</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">workflow-id</span></code></td>
<td>Name of the workflow</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">run-id</span></code></td>
<td>UUID of the workflow run</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section" id="workflow-state">
<h2>Workflow State<a class="headerlink" href="#workflow-state" title="Permalink to this headline">🔗</a></h2>
<p>The workflow state interface allows you to retrieve the state of all nodes that were executed as
a part of a given workflow run.</p>
<p>To retrieve the state of a particular workflow run, use an HTTP GET request to the query’s URL:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">GET /v3/namespaces/&lt;namespace-id&gt;/apps/&lt;app-id&gt;/workflows/&lt;workflow-id&gt;/runs/&lt;run-id&gt;/nodes/state</span>
</pre></div>
</div>
<p>where</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">namespace-id</span></code></td>
<td>Namespace ID</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">app-id</span></code></td>
<td>Name of the application</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">workflow-id</span></code></td>
<td>Name of the workflow</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">run-id</span></code></td>
<td>UUID of the workflow run</td>
</tr>
</tbody>
</table>
<p class="rubric">Example</p>
<p>The query:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">GET /v3/namespaces/default/apps/Purchase/workflows/PurchaseHistoryWorkflow/runs/53280521-0ce3-11e6-873e-da6a50dd7318/nodes/state</span>
</pre></div>
</div>
<p>would return results similar to these, pretty-printed for display:</p>
<div class="highlight-json-ellipsis notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
    <span class="nt">&quot;PurchaseHistoryBuilder&quot;</span><span class="p">:</span> <span class="p">{</span>
        <span class="nt">&quot;nodeId&quot;</span><span class="p">:</span> <span class="s2">&quot;PurchaseHistoryBuilder&quot;</span><span class="p">,</span>
        <span class="nt">&quot;nodeStatus&quot;</span><span class="p">:</span> <span class="s2">&quot;COMPLETED&quot;</span><span class="p">,</span>
        <span class="nt">&quot;runId&quot;</span><span class="p">:</span> <span class="s2">&quot;53504da2-0ce3-11e6-92bb-da6a50dd7318&quot;</span>
    <span class="p">},</span>
    <span class="nt">&quot;PurchaseReader&quot;</span><span class="p">:</span> <span class="p">{</span>
        <span class="nt">&quot;nodeId&quot;</span><span class="p">:</span> <span class="s2">&quot;PurchaseReader&quot;</span><span class="p">,</span>
        <span class="nt">&quot;nodeStatus&quot;</span><span class="p">:</span> <span class="s2">&quot;COMPLETED&quot;</span>
    <span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
<div class="section" id="workflow-statistics">
<h2>Workflow Statistics<a class="headerlink" href="#workflow-statistics" title="Permalink to this headline">🔗</a></h2>
<p>These requests provide statistics across <em>successful</em> runs of a workflow, in a time
interval, for a succession of runs, or between two specific runs. These requests will help
in determining which jobs are responsible for delays or problems.</p>
<div class="section" id="statistics-of-successful-runs">
<h3>Statistics of Successful Runs<a class="headerlink" href="#statistics-of-successful-runs" title="Permalink to this headline">🔗</a></h3>
<p>This request returns general statistics about all <em>successful</em> workflow runs in a particular time interval,
with an analysis based on a series of (optionally) provided percentiles:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">GET /v3/namespaces/&lt;namespace-id&gt;/apps/&lt;app-id&gt;/workflows/&lt;workflow-id&gt;/statistics?</span>
<span class="go">  start=&lt;start-time&gt;&amp;end=&lt;end-time&gt;&amp;percentile=&lt;percentile-1&gt;&amp;percentile=&lt;percentile-2&gt;...</span>
</pre></div>
</div>
<p>where</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">namespace-id</span></code></td>
<td>Namespace ID</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">app-id</span></code></td>
<td>Name of the application</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">workflow-id</span></code></td>
<td>Name of the workflow</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">start-time</span></code></td>
<td>Start time of runs (in seconds); if not provided, defaults to <code class="docutils literal notranslate"><span class="pre">now</span></code> (optional)</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">end-time</span></code></td>
<td>End time of runs (in seconds); if not provided, defaults to <code class="docutils literal notranslate"><span class="pre">now-1d</span></code> (optional)</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">percentile-1</span></code></td>
<td>List of percentiles (each greater than zero and less than 100) to be used for generating statistics;
if not provided, defaults to 90 (optional)</td>
</tr>
</tbody>
</table>
<p>If the query was successful, the body will contain a JSON structure of statistics.</p>
<p><strong>Note:</strong> When specifying start and end times, in addition to giving an absolute timestamp
in seconds, you can specify a relative time, using <code class="docutils literal notranslate"><span class="pre">now</span></code> minus an increment with units.
Examples: <code class="docutils literal notranslate"><span class="pre">now-&lt;n&gt;s</span></code>, <code class="docutils literal notranslate"><span class="pre">now-&lt;n&gt;m</span></code>,  <code class="docutils literal notranslate"><span class="pre">now-&lt;n&gt;h</span></code>, or <code class="docutils literal notranslate"><span class="pre">now-&lt;n&gt;d</span></code>.</p>
<p class="rubric">HTTP Responses</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Status Codes</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">200</span> <span class="pre">OK</span></code></td>
<td>The query was successfully received and the statistics were returned in the body in a JSON format</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">404</span> <span class="pre">Not</span> <span class="pre">Found</span></code></td>
<td>The app, workflow, run-id, scope or key was not found</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">500</span></code></td>
<td>Internal server error</td>
</tr>
</tbody>
</table>
<p class="rubric">Example</p>
<p>The query:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">GET /v3/namespaces/default/apps/Purchase/workflows/PurchaseHistoryWorkflow/statistics?</span>
<span class="go">  start=1441918778&amp;end=1442005182&amp;percentile=80&amp;percentile=90&amp;percentile=95&amp;percentile=99</span>
</pre></div>
</div>
<p>would return results similar to these, pretty-printed for display:</p>
<div class="highlight-json-ellipsis notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
    <span class="nt">&quot;startTime&quot;</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span>
    <span class="nt">&quot;endTime&quot;</span><span class="p">:</span> <span class="mi">1442008469</span><span class="p">,</span>
    <span class="nt">&quot;runs&quot;</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span>
    <span class="nt">&quot;avgRunTime&quot;</span><span class="p">:</span> <span class="mf">7.5</span><span class="p">,</span>
    <span class="nt">&quot;percentileInformationList&quot;</span><span class="p">:</span> <span class="p">[</span>
        <span class="p">{</span>
            <span class="nt">&quot;percentile&quot;</span><span class="p">:</span> <span class="mf">80.0</span><span class="p">,</span>
            <span class="nt">&quot;percentileTimeInSeconds&quot;</span><span class="p">:</span> <span class="mi">9</span><span class="p">,</span>
            <span class="nt">&quot;runIdsOverPercentile&quot;</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">&quot;e0cc5b98-58cc-11e5-84a1-8cae4cfd0e64&quot;</span>
            <span class="p">]</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="nt">&quot;percentile&quot;</span><span class="p">:</span> <span class="mf">90.0</span><span class="p">,</span>
            <span class="nt">&quot;percentileTimeInSeconds&quot;</span><span class="p">:</span> <span class="mi">9</span><span class="p">,</span>
            <span class="nt">&quot;runIdsOverPercentile&quot;</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">&quot;e0cc5b98-58cc-11e5-84a1-8cae4cfd0e64&quot;</span>
            <span class="p">]</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="nt">&quot;percentile&quot;</span><span class="p">:</span> <span class="mf">95.0</span><span class="p">,</span>
            <span class="nt">&quot;percentileTimeInSeconds&quot;</span><span class="p">:</span> <span class="mi">9</span><span class="p">,</span>
            <span class="nt">&quot;runIdsOverPercentile&quot;</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">&quot;e0cc5b98-58cc-11e5-84a1-8cae4cfd0e64&quot;</span>
            <span class="p">]</span>
        <span class="p">},</span>
        <span class="p">{</span>
            <span class="nt">&quot;percentile&quot;</span><span class="p">:</span> <span class="mf">99.0</span><span class="p">,</span>
            <span class="nt">&quot;percentileTimeInSeconds&quot;</span><span class="p">:</span> <span class="mi">9</span><span class="p">,</span>
            <span class="nt">&quot;runIdsOverPercentile&quot;</span><span class="p">:</span> <span class="p">[</span>
                <span class="s2">&quot;e0cc5b98-58cc-11e5-84a1-8cae4cfd0e64&quot;</span>
            <span class="p">]</span>
        <span class="p">}</span>
    <span class="p">],</span>
    <span class="nt">&quot;nodes&quot;</span><span class="p">:</span> <span class="p">{</span>
        <span class="nt">&quot;PurchaseHistoryBuilder&quot;</span><span class="p">:</span> <span class="p">{</span>
            <span class="nt">&quot;avgRunTime&quot;</span><span class="p">:</span> <span class="s2">&quot;7.0&quot;</span><span class="p">,</span>
            <span class="nt">&quot;99.0&quot;</span><span class="p">:</span> <span class="s2">&quot;8&quot;</span><span class="p">,</span>
            <span class="nt">&quot;80.0&quot;</span><span class="p">:</span> <span class="s2">&quot;8&quot;</span><span class="p">,</span>
            <span class="nt">&quot;95.0&quot;</span><span class="p">:</span> <span class="s2">&quot;8&quot;</span><span class="p">,</span>
            <span class="nt">&quot;runs&quot;</span><span class="p">:</span> <span class="s2">&quot;4&quot;</span><span class="p">,</span>
            <span class="nt">&quot;90.0&quot;</span><span class="p">:</span> <span class="s2">&quot;8&quot;</span><span class="p">,</span>
            <span class="nt">&quot;type&quot;</span><span class="p">:</span> <span class="s2">&quot;MapReduce&quot;</span>
        <span class="p">}</span>
    <span class="p">}</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
<div class="section" id="comparing-a-run-to-runs-before-and-after">
<h3>Comparing a Run to Runs Before and After<a class="headerlink" href="#comparing-a-run-to-runs-before-and-after" title="Permalink to this headline">🔗</a></h3>
<p>This request returns a list of workflow metrics, based on a workflow run and a surrounding
number of <em>successful</em> runs of the workflow that are spaced apart by a time interval from
each other:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">GET /v3/namespaces/&lt;namespace-id&gt;/apps/&lt;app-id&gt;/workflows/&lt;workflow-id&gt;/runs/&lt;run-id&gt;/statistics?</span>
<span class="go">  limit=&lt;limit&gt;&amp;interval=&lt;interval&gt;</span>
</pre></div>
</div>
<p>where</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">namespace-id</span></code></td>
<td>Namespace ID</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">app-id</span></code></td>
<td>Name of the application</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">workflow-id</span></code></td>
<td>Name of the workflow</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">run-id</span></code></td>
<td>UUID of the workflow run</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">limit</span></code></td>
<td>The number of the records to compare against (before and after) the run; if not provided, defaults to <code class="docutils literal notranslate"><span class="pre">10</span></code> (optional)</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">interval</span></code></td>
<td>The time interval with which to space out the runs before and after, with units; if not provided, defaults to <code class="docutils literal notranslate"><span class="pre">10s</span></code> (optional)</td>
</tr>
</tbody>
</table>
<p>If the query was successful, the body will contain a JSON structure of statistics.</p>
<p class="rubric">HTTP Responses</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Status Codes</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">200</span> <span class="pre">OK</span></code></td>
<td>The query was successfully received and the statistics were returned in the body in a JSON format</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">404</span> <span class="pre">Not</span> <span class="pre">Found</span></code></td>
<td>The app, workflow, run-id, scope or key was not found</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">500</span></code></td>
<td>Internal server error</td>
</tr>
</tbody>
</table>
<p class="rubric">Example</p>
<p>The query:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">GET /v3/namespaces/default/apps/Purchase/workflows/PurchaseHistoryWorkflow/runs/</span>
<span class="go">  1873ade0-58d9-11e5-b79d-8cae4cfd0e64/statistics?limit=10&amp;interval=10s&#39;</span>
</pre></div>
</div>
<p>would return results similar to these, pretty-printed for display:</p>
<div class="highlight-json-ellipsis notranslate"><div class="highlight"><pre><span></span><span class="p">{</span>
    <span class="nt">&quot;startTimes&quot;</span><span class="p">:</span> <span class="p">{</span>
        <span class="nt">&quot;1dd36962-58d9-11e5-82ac-8cae4cfd0e64&quot;</span><span class="p">:</span> <span class="mi">1442012523</span><span class="p">,</span>
        <span class="nt">&quot;2523aa44-58d9-11e5-90fd-8cae4cfd0e64&quot;</span><span class="p">:</span> <span class="mi">1442012535</span><span class="p">,</span>
        <span class="nt">&quot;1873ade0-58d9-11e5-b79d-8cae4cfd0e64&quot;</span><span class="p">:</span> <span class="mi">1442012514</span>
    <span class="p">},</span>
    <span class="nt">&quot;programNodesList&quot;</span><span class="p">:</span> <span class="p">[</span>
        <span class="p">{</span>
            <span class="nt">&quot;programName&quot;</span><span class="p">:</span> <span class="s2">&quot;PurchaseHistoryBuilder&quot;</span><span class="p">,</span>
            <span class="nt">&quot;workflowProgramDetailsList&quot;</span><span class="p">:</span> <span class="p">[</span>
                <span class="p">{</span>
                    <span class="nt">&quot;workflowRunId&quot;</span><span class="p">:</span> <span class="s2">&quot;1dd36962-58d9-11e5-82ac-8cae4cfd0e64&quot;</span><span class="p">,</span>
                    <span class="nt">&quot;programRunId&quot;</span><span class="p">:</span> <span class="s2">&quot;1e1c3233-58d9-11e5-a7ff-8cae4cfd0e64&quot;</span><span class="p">,</span>
                    <span class="nt">&quot;programRunStart&quot;</span><span class="p">:</span> <span class="mi">1442012524</span><span class="p">,</span>
                    <span class="nt">&quot;metrics&quot;</span><span class="p">:</span> <span class="p">{</span>
                        <span class="nt">&quot;MAP_INPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">19</span><span class="p">,</span>
                        <span class="nt">&quot;REDUCE_OUTPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
                        <span class="nt">&quot;timeTaken&quot;</span><span class="p">:</span> <span class="mi">9</span><span class="p">,</span>
                        <span class="nt">&quot;MAP_OUTPUT_BYTES&quot;</span><span class="p">:</span> <span class="mi">964</span><span class="p">,</span>
                        <span class="nt">&quot;MAP_OUTPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">19</span><span class="p">,</span>
                        <span class="nt">&quot;REDUCE_INPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">19</span>
                    <span class="p">}</span>
                <span class="p">},</span>
                <span class="p">{</span>
                    <span class="nt">&quot;workflowRunId&quot;</span><span class="p">:</span> <span class="s2">&quot;1873ade0-58d9-11e5-b79d-8cae4cfd0e64&quot;</span><span class="p">,</span>
                    <span class="nt">&quot;programRunId&quot;</span><span class="p">:</span> <span class="s2">&quot;188a9141-58d9-11e5-88d1-8cae4cfd0e64&quot;</span><span class="p">,</span>
                    <span class="nt">&quot;programRunStart&quot;</span><span class="p">:</span> <span class="mi">1442012514</span><span class="p">,</span>
                    <span class="nt">&quot;metrics&quot;</span><span class="p">:</span> <span class="p">{</span>
                        <span class="nt">&quot;MAP_INPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">19</span><span class="p">,</span>
                        <span class="nt">&quot;REDUCE_OUTPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
                        <span class="nt">&quot;timeTaken&quot;</span><span class="p">:</span> <span class="mi">7</span><span class="p">,</span>
                        <span class="nt">&quot;MAP_OUTPUT_BYTES&quot;</span><span class="p">:</span> <span class="mi">964</span><span class="p">,</span>
                        <span class="nt">&quot;MAP_OUTPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">19</span><span class="p">,</span>
                        <span class="nt">&quot;REDUCE_INPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">19</span>
                    <span class="p">}</span>
                <span class="p">}</span>
            <span class="p">],</span>
            <span class="nt">&quot;programType&quot;</span><span class="p">:</span> <span class="s2">&quot;Mapreduce&quot;</span>
        <span class="p">}</span>
    <span class="p">]</span>
<span class="p">}</span>
</pre></div>
</div>
</div>
<div class="section" id="comparing-two-runs">
<h3>Comparing Two Runs<a class="headerlink" href="#comparing-two-runs" title="Permalink to this headline">🔗</a></h3>
<p>This request compares the metrics of two runs of a workflow:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">GET /v3/namespaces/&lt;namespace-id&gt;/apps/&lt;app-id&gt;/workflows/&lt;workflow-id&gt;/runs/&lt;run-id&gt;/compare?</span>
<span class="go">  other-run-id=&lt;other-run-id&gt;</span>
</pre></div>
</div>
<p>where</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Parameter</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">namespace-id</span></code></td>
<td>Namespace ID</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">app-id</span></code></td>
<td>Name of the application</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">workflow-id</span></code></td>
<td>Name of the workflow</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">run-id</span></code></td>
<td>UUID of the workflow run</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">other-run-id</span></code></td>
<td>UUID of the other workflow run to be used in the comparison</td>
</tr>
</tbody>
</table>
<p>If the query was successful, the body will contain a JSON structure of statistics. Note that if either of
the run-ids is from an <em>unsuccessful</em> run, an error message will be returned:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">&#39;The other run-id provided was not found : dbd59091-58cb-11e5-a7c6-8cae4cfd0e64&#39; was not found</span>
</pre></div>
</div>
<p class="rubric">HTTP Responses</p>
<table border="1" class="docutils">
<colgroup>
<col width="20%" />
<col width="80%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Status Codes</th>
<th class="head">Description</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">200</span> <span class="pre">OK</span></code></td>
<td>The query was successfully received and the statistics were returned in the body in a JSON format</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">404</span> <span class="pre">Not</span> <span class="pre">Found</span></code></td>
<td>The app, workflow, run-id, scope or key was not found</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">500</span></code></td>
<td>Internal server error</td>
</tr>
</tbody>
</table>
<p class="rubric">Example</p>
<p>Comparing two runs (<code class="docutils literal notranslate"><span class="pre">14b8710a-58cd-11e5-98ca-8cae4cfd0e64</span></code> and <code class="docutils literal notranslate"><span class="pre">e0cc5b98-58cc-11e5-84a1-8cae4cfd0e64</span></code>):</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">GET /v3/namespaces/default/apps/Purchase/workflows/PurchaseHistoryWorkflow/</span>
<span class="go">  runs/14b8710a-58cd-11e5-98ca-8cae4cfd0e64/compare?other-run-id=e0cc5b98-58cc-11e5-84a1-8cae4cfd0e64</span>
</pre></div>
</div>
<p>would return results similar to these, pretty-printed for display:</p>
<div class="highlight-json-ellipsis notranslate"><div class="highlight"><pre><span></span><span class="p">[</span>
    <span class="p">{</span>
        <span class="nt">&quot;programName&quot;</span><span class="p">:</span> <span class="s2">&quot;PurchaseHistoryBuilder&quot;</span><span class="p">,</span>
        <span class="nt">&quot;workflowProgramDetailsList&quot;</span><span class="p">:</span> <span class="p">[</span>
            <span class="p">{</span>
                <span class="nt">&quot;workflowRunId&quot;</span><span class="p">:</span> <span class="s2">&quot;14b8710a-58cd-11e5-98ca-8cae4cfd0e64&quot;</span><span class="p">,</span>
                <span class="nt">&quot;programRunId&quot;</span><span class="p">:</span> <span class="s2">&quot;14c9d62b-58cd-11e5-9105-8cae4cfd0e64&quot;</span><span class="p">,</span>
                <span class="nt">&quot;programRunStart&quot;</span><span class="p">:</span> <span class="mi">1442007354</span><span class="p">,</span>
                <span class="nt">&quot;metrics&quot;</span><span class="p">:</span> <span class="p">{</span>
                    <span class="nt">&quot;MAP_INPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">19</span><span class="p">,</span>
                    <span class="nt">&quot;REDUCE_OUTPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
                    <span class="nt">&quot;timeTaken&quot;</span><span class="p">:</span> <span class="mi">7</span><span class="p">,</span>
                    <span class="nt">&quot;MAP_OUTPUT_BYTES&quot;</span><span class="p">:</span> <span class="mi">964</span><span class="p">,</span>
                    <span class="nt">&quot;MAP_OUTPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">19</span><span class="p">,</span>
                    <span class="nt">&quot;REDUCE_INPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">19</span>
                <span class="p">}</span>
            <span class="p">},</span>
            <span class="p">{</span>
                <span class="nt">&quot;workflowRunId&quot;</span><span class="p">:</span> <span class="s2">&quot;e0cc5b98-58cc-11e5-84a1-8cae4cfd0e64&quot;</span><span class="p">,</span>
                <span class="nt">&quot;programRunId&quot;</span><span class="p">:</span> <span class="s2">&quot;e1497ad9-58cc-11e5-9dfa-8cae4cfd0e64&quot;</span><span class="p">,</span>
                <span class="nt">&quot;programRunStart&quot;</span><span class="p">:</span> <span class="mi">1442007268</span><span class="p">,</span>
                <span class="nt">&quot;metrics&quot;</span><span class="p">:</span> <span class="p">{</span>
                    <span class="nt">&quot;MAP_INPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">19</span><span class="p">,</span>
                    <span class="nt">&quot;REDUCE_OUTPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span>
                    <span class="nt">&quot;timeTaken&quot;</span><span class="p">:</span> <span class="mi">8</span><span class="p">,</span>
                    <span class="nt">&quot;MAP_OUTPUT_BYTES&quot;</span><span class="p">:</span> <span class="mi">964</span><span class="p">,</span>
                    <span class="nt">&quot;MAP_OUTPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">19</span><span class="p">,</span>
                    <span class="nt">&quot;REDUCE_INPUT_RECORDS&quot;</span><span class="p">:</span> <span class="mi">19</span>
                <span class="p">}</span>
            <span class="p">}</span>
        <span class="p">],</span>
        <span class="nt">&quot;programType&quot;</span><span class="p">:</span> <span class="s2">&quot;Mapreduce&quot;</span>
    <span class="p">}</span>
<span class="p">]</span>
</pre></div>
</div>
</div>
</div>
</div>

</div>
    <div class="col-md-2">
      <div id="right-sidebar" class="bs-sidenav scrollable-y" role="complementary">
        <div id="localtoc-scrollspy">
        </div>
      </div>
    </div></div>
</div>
<!-- block main content end -->
<!-- block footer -->
<footer class="footer">
      <div class="container">
        <div class="row">
          <div class="col-md-2 footer-left"><a title="Transaction Service HTTP RESTful API" href="transactions.html" />Previous</a></div>
          <div class="col-md-8 footer-center"><a class="footer-tab-link" href="../table-of-contents/../../reference-manual/licenses/index.html">Copyright</a> &copy; 2014-2020 Cask Data, Inc.&bull; <a class="footer-tab-link" href="//docs.cask.co/cdap/6.1.1/cdap-docs-6.1.1-web.zip" rel="nofollow">Download</a> an archive or
<a class="footer-tab-link" href="//docs.cask.co/cdap">switch the version</a> of the documentation
          </div>
          <div class="col-md-2 footer-right"><a title="Java Client API" href="../java-client-api.html" />Next</a></div>
        </div>
      </div>
    </footer>
<!-- block footer end -->
<script type="text/javascript" src="../_static/bootstrap-3.3.6/js/bootstrap.min.js"></script><script type="text/javascript" src="../_static/js/bootstrap-sphinx.js"></script><script type="text/javascript" src="../_static/js/abixTreeList-2.js"></script><script type="text/javascript" src="../_static/js/cdap-dynamicscrollspy-4.js"></script><script type="text/javascript" src="../_static/js/cdap-version-menu.js"></script><script type="text/javascript" src="../_static/js/copy-to-clipboard.js"></script><script type="text/javascript" src="../_static/js/jquery.mousewheel.min.js"></script><script type="text/javascript" src="../_static/js/jquery.mCustomScrollbar.js"></script><script type="text/javascript" src="../_static/js/js.cookie.js"></script><script type="text/javascript" src="../_static/js/tabbed-parsed-literal-0.2.js"></script><script type="text/javascript" src="../_static/js/cdap-onload-javascript.js"></script><script type="text/javascript" src="../_static/js/cdap-version-menu.js"></script>
    <script src="https://cdap.gitee.io/docs/cdap/json-versions.js"/></script>
  </body>
</html>